package web.suzy.oj.service.admin.announcement;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
import web.suzy.oj.common.result.ResultBean;
import web.suzy.oj.pojo.entity.common.Announcement;
import web.suzy.oj.pojo.vo.AnnouncementVO;

/**
 * YangSuzy 软件工作室
 * 类名: AdminAnnouncementService
 * 描述: ---- 待定 -----
 * 功能: ---- 待定 -----
 *
 * @author YangSuzy
 * Date: 2022/11/25 20:29
 */
public interface AdminAnnouncementService {
    /**
     * 方法名: getAnnouncementList
     * 描述: 获取公告列表
     *
     * @param limit       每页显示数目
     * @param currentPage 当前页
     * @return web.suzy.oj.common.result.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < web.suzy.oj.pojo.vo.AnnouncementVO>>
     * @date 2022/11/25 20:29
     * @auther YangSuzy
     **/
    ResultBean<IPage<AnnouncementVO>> getAnnouncementList(Integer limit, Integer currentPage);

    /**
     * 方法名: addAnnouncement
     * 描述: 管理员发布公告
     *
     * @param announcement
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/11/25 20:30
     * @auther YangSuzy
     **/
    ResultBean<Void> addAnnouncement(Announcement announcement);

    /**
     * 方法名: updateAnnouncement
     * 描述: 管理员更新公告
     *
     * @param announcement
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/11/25 20:30
     * @auther YangSuzy
     **/
    ResultBean<Void> updateAnnouncement(Announcement announcement);

    /**
     * 方法名: deleteAnnouncement
     * 描述: 管理员删除公告
     *
     * @param aid
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/11/25 20:30
     * @auther YangSuzy
     **/
    ResultBean<Void> deleteAnnouncement(Long aid);
}
